// 对package.json的依赖进行排序操作
// 因为正常npm install一个包的时候，这些依赖项都是有序的
export const sortDependencies = (packageJson) => {
  const sorted = {}
  const depTypes = ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies']
  for (const depType of depTypes) {
    if (packageJson[depType]) {
      sorted[depType] = {}

      Object.keys(packageJson[depType])
        .sort()
        .forEach((name) => {
          sorted[depType][name] = packageJson[depType][name]
        })
    }
  }
  return {
    ...packageJson,
    ...sorted,
  }
}
